<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>ArNetworking: ArNetPacketReceiverTcp Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ArNetworking
   &#160;<span id="projectnumber">dev20180125</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArNetPacketReceiverTcp.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classArNetPacketReceiverTcp-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArNetPacketReceiverTcp Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>This class receives TCP packets from a socket, you need to have an open socket and give it to the socket with setSocket, then you need to set up a callback to process packets with setProcessPacketCB, finally call readData which will read in all the data and call the processPacketCB.  
 <a href="classArNetPacketReceiverTcp.html#details">More...</a></p>

<p><code>#include &lt;ArNetPacketReceiverTcp.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a296495f396011382eca31a9b6d2d573d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a296495f396011382eca31a9b6d2d573d">ArNetPacketReceiverTcp</a> ()</td></tr>
<tr class="memdesc:a296495f396011382eca31a9b6d2d573d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a296495f396011382eca31a9b6d2d573d">More...</a><br /></td></tr>
<tr class="separator:a296495f396011382eca31a9b6d2d573d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f361a2714580f35c50f7a0253df1040"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; <a class="el" href="classArNetPacket.html">ArNetPacket</a> * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a6f361a2714580f35c50f7a0253df1040">getProcessPacketCB</a> (void)</td></tr>
<tr class="memdesc:a6f361a2714580f35c50f7a0253df1040"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the callback used when a packet is received.  <a href="#a6f361a2714580f35c50f7a0253df1040">More...</a><br /></td></tr>
<tr class="separator:a6f361a2714580f35c50f7a0253df1040"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4cc6fabc56576af75f7bfd727d1ae6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a6b4cc6fabc56576af75f7bfd727d1ae6">getQuiet</a> (void)</td></tr>
<tr class="memdesc:a6b4cc6fabc56576af75f7bfd727d1ae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets whether we're quiet about errors or not.  <a href="#a6b4cc6fabc56576af75f7bfd727d1ae6">More...</a><br /></td></tr>
<tr class="separator:a6b4cc6fabc56576af75f7bfd727d1ae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf7127a13986063e7a4c130f3bf55421"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArSocket.html">ArSocket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#adf7127a13986063e7a4c130f3bf55421">getSocket</a> (void)</td></tr>
<tr class="memdesc:adf7127a13986063e7a4c130f3bf55421"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the socket this receiver uses.  <a href="#adf7127a13986063e7a4c130f3bf55421">More...</a><br /></td></tr>
<tr class="separator:adf7127a13986063e7a4c130f3bf55421"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a890d4bdcd0e68e98b78c142bb752b74d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a890d4bdcd0e68e98b78c142bb752b74d">readData</a> (void)</td></tr>
<tr class="memdesc:a890d4bdcd0e68e98b78c142bb752b74d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads in all the data available calling the processPacketCB.  <a href="#a890d4bdcd0e68e98b78c142bb752b74d">More...</a><br /></td></tr>
<tr class="separator:a890d4bdcd0e68e98b78c142bb752b74d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6856fa666eee1a726f24cc29f1c4dd24"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a6856fa666eee1a726f24cc29f1c4dd24">setLoggingPrefix</a> (const char *loggingPrefix)</td></tr>
<tr class="memdesc:a6856fa666eee1a726f24cc29f1c4dd24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the logging prefix.  <a href="#a6856fa666eee1a726f24cc29f1c4dd24">More...</a><br /></td></tr>
<tr class="separator:a6856fa666eee1a726f24cc29f1c4dd24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabb2ee9ad00fed3d6d2057634f2813a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#aabb2ee9ad00fed3d6d2057634f2813a1">setProcessPacketCB</a> (<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; <a class="el" href="classArNetPacket.html">ArNetPacket</a> * &gt; *functor)</td></tr>
<tr class="memdesc:aabb2ee9ad00fed3d6d2057634f2813a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the callback for use when a packet is received.  <a href="#aabb2ee9ad00fed3d6d2057634f2813a1">More...</a><br /></td></tr>
<tr class="separator:aabb2ee9ad00fed3d6d2057634f2813a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa91c0cb40e86f21dd3af22567f1c7a07"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#aa91c0cb40e86f21dd3af22567f1c7a07">setQuiet</a> (bool quiet)</td></tr>
<tr class="memdesc:aa91c0cb40e86f21dd3af22567f1c7a07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether we're quiet about errors or not.  <a href="#aa91c0cb40e86f21dd3af22567f1c7a07">More...</a><br /></td></tr>
<tr class="separator:aa91c0cb40e86f21dd3af22567f1c7a07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a886818db9c10cdc4e43e946f7239b325"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a886818db9c10cdc4e43e946f7239b325">setSocket</a> (<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArSocket.html">ArSocket</a> *socket)</td></tr>
<tr class="memdesc:a886818db9c10cdc4e43e946f7239b325"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the socket this receiver uses.  <a href="#a886818db9c10cdc4e43e946f7239b325">More...</a><br /></td></tr>
<tr class="separator:a886818db9c10cdc4e43e946f7239b325"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb12f0d5d88ee25ae60c724d14f14baf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#adb12f0d5d88ee25ae60c724d14f14baf">~ArNetPacketReceiverTcp</a> ()</td></tr>
<tr class="memdesc:adb12f0d5d88ee25ae60c724d14f14baf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#adb12f0d5d88ee25ae60c724d14f14baf">More...</a><br /></td></tr>
<tr class="separator:adb12f0d5d88ee25ae60c724d14f14baf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:aa01aaec8940d7485a0ee84c7d11bc52f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="classArNetPacketReceiverTcp.html#aa01aaec8940d7485a0ee84c7d11bc52fa146ac460febcaa693e081e42f0608fe8">TOTAL_PACKET_LENGTH</a> = ArNetPacket::MAX_LENGTH+ArNetPacket::HEADER_LENGTH+ArNetPacket::FOOTER_LENGTH
 }</td></tr>
<tr class="separator:aa01aaec8940d7485a0ee84c7d11bc52f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76116a42ec47264c061e8cfe3565e97e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97e">Ret</a> { <br />
&#160;&#160;<a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea381e44166e13fdac40b28aa969a541a4">RET_CONN_CLOSED</a>, 
<a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea10030506b4e96909b898a8d689c928b2">RET_CONN_ERROR</a>, 
<a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea5e75e477ac45985b70b4b10cf8a9ad0f">RET_GOT_PACKET</a>, 
<a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97eadcad0df1074a8869eb2284ce912b31c0">RET_BAD_PACKET</a>, 
<br />
&#160;&#160;<a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea9e54270eeecfb3325d45e3b452aef2a0">RET_FAILED_READ</a>, 
<a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea475e41d0d8e5b063f9da0bf16e1981ac">RET_TIMED_OUT</a>
<br />
 }</td></tr>
<tr class="separator:a76116a42ec47264c061e8cfe3565e97e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a010c068eb5b149fac6ebc2d62605e877"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877">State</a> { <br />
&#160;&#160;<a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877a4e57959ccd21fb855a979515c4492f0d">STATE_SYNC1</a>, 
<a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877aa7a3c6c802f9dd464fcc25fa6e4ba9f9">STATE_SYNC2</a>, 
<a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877ad9a41316161b3e85f52f6974fd8a1d7f">STATE_LENGTH1</a>, 
<a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877a03926065d783b5bc47b2992a03b38254">STATE_LENGTH2</a>, 
<br />
&#160;&#160;<a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877af750144bc35173846e7c61d49c970cd4">STATE_ACQUIRE_DATA</a>
<br />
 }</td></tr>
<tr class="separator:a010c068eb5b149fac6ebc2d62605e877"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a3b5299ac1052b95199fa2bb03416ad17"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97e">Ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket</a> (int msWait)</td></tr>
<tr class="memdesc:a3b5299ac1052b95199fa2bb03416ad17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads in a single packet, returns NULL if not one.  <a href="#a3b5299ac1052b95199fa2bb03416ad17">More...</a><br /></td></tr>
<tr class="separator:a3b5299ac1052b95199fa2bb03416ad17"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ab7a4e9e8a31b0657345b3c1fe36be897"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArTime.html">ArTime</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#ab7a4e9e8a31b0657345b3c1fe36be897">myLastPacket</a></td></tr>
<tr class="separator:ab7a4e9e8a31b0657345b3c1fe36be897"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb5d25bdd33bf56e13e03eff265f4e84"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#aeb5d25bdd33bf56e13e03eff265f4e84">myLoggingPrefix</a></td></tr>
<tr class="separator:aeb5d25bdd33bf56e13e03eff265f4e84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d94a72f83579b5ecd54b80230acbb31"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classArNetPacket.html">ArNetPacket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a1d94a72f83579b5ecd54b80230acbb31">myPacket</a></td></tr>
<tr class="separator:a1d94a72f83579b5ecd54b80230acbb31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ff3e8c79ea85602d8a02ef0c68f2179"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; <a class="el" href="classArNetPacket.html">ArNetPacket</a> * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a0ff3e8c79ea85602d8a02ef0c68f2179">myProcessPacketCB</a></td></tr>
<tr class="separator:a0ff3e8c79ea85602d8a02ef0c68f2179"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32ae68ab3204e80c95b8cf8efb2d0152"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a32ae68ab3204e80c95b8cf8efb2d0152">myQuiet</a></td></tr>
<tr class="separator:a32ae68ab3204e80c95b8cf8efb2d0152"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c685fc3e8c8ea6feaa1dec662d8cc5f"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a8c685fc3e8c8ea6feaa1dec662d8cc5f">myReadBuff</a> [<a class="el" href="classArNetPacketReceiverTcp.html#aa01aaec8940d7485a0ee84c7d11bc52fa146ac460febcaa693e081e42f0608fe8">TOTAL_PACKET_LENGTH</a>]</td></tr>
<tr class="separator:a8c685fc3e8c8ea6feaa1dec662d8cc5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48597805fbc8af5c6be36e68c7b28f6c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a48597805fbc8af5c6be36e68c7b28f6c">myReadCommand</a></td></tr>
<tr class="separator:a48597805fbc8af5c6be36e68c7b28f6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecf6c45f2a6a58a049509933ef4bf812"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#aecf6c45f2a6a58a049509933ef4bf812">myReadCount</a></td></tr>
<tr class="separator:aecf6c45f2a6a58a049509933ef4bf812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa86f728499a275ea2239297eea54fe27"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#aa86f728499a275ea2239297eea54fe27">myReadLength</a></td></tr>
<tr class="separator:aa86f728499a275ea2239297eea54fe27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af226fbbac54e12e07399b16fa36e756c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArSocket.html">ArSocket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#af226fbbac54e12e07399b16fa36e756c">mySocket</a></td></tr>
<tr class="separator:af226fbbac54e12e07399b16fa36e756c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12e004623b489822264a70fd8d388d66"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877">State</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a12e004623b489822264a70fd8d388d66">myState</a></td></tr>
<tr class="separator:a12e004623b489822264a70fd8d388d66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2131fea3a0a13cfbfc6ead24968109de"><td class="memItemLeft" align="right" valign="top">unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a2131fea3a0a13cfbfc6ead24968109de">mySync1</a></td></tr>
<tr class="separator:a2131fea3a0a13cfbfc6ead24968109de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f6c8bb129aa8931257edd76b1c9cbdc"><td class="memItemLeft" align="right" valign="top">unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArNetPacketReceiverTcp.html#a5f6c8bb129aa8931257edd76b1c9cbdc">mySync2</a></td></tr>
<tr class="separator:a5f6c8bb129aa8931257edd76b1c9cbdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This class receives TCP packets from a socket, you need to have an open socket and give it to the socket with setSocket, then you need to set up a callback to process packets with setProcessPacketCB, finally call readData which will read in all the data and call the processPacketCB. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="aa01aaec8940d7485a0ee84c7d11bc52f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="aa01aaec8940d7485a0ee84c7d11bc52fa146ac460febcaa693e081e42f0608fe8"></a>TOTAL_PACKET_LENGTH&#160;</td><td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="a76116a42ec47264c061e8cfe3565e97e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97e">ArNetPacketReceiverTcp::Ret</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a76116a42ec47264c061e8cfe3565e97ea381e44166e13fdac40b28aa969a541a4"></a>RET_CONN_CLOSED&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a76116a42ec47264c061e8cfe3565e97ea10030506b4e96909b898a8d689c928b2"></a>RET_CONN_ERROR&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a76116a42ec47264c061e8cfe3565e97ea5e75e477ac45985b70b4b10cf8a9ad0f"></a>RET_GOT_PACKET&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a76116a42ec47264c061e8cfe3565e97eadcad0df1074a8869eb2284ce912b31c0"></a>RET_BAD_PACKET&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a76116a42ec47264c061e8cfe3565e97ea9e54270eeecfb3325d45e3b452aef2a0"></a>RET_FAILED_READ&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a76116a42ec47264c061e8cfe3565e97ea475e41d0d8e5b063f9da0bf16e1981ac"></a>RET_TIMED_OUT&#160;</td><td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="a010c068eb5b149fac6ebc2d62605e877"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877">ArNetPacketReceiverTcp::State</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a010c068eb5b149fac6ebc2d62605e877a4e57959ccd21fb855a979515c4492f0d"></a>STATE_SYNC1&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a010c068eb5b149fac6ebc2d62605e877aa7a3c6c802f9dd464fcc25fa6e4ba9f9"></a>STATE_SYNC2&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a010c068eb5b149fac6ebc2d62605e877ad9a41316161b3e85f52f6974fd8a1d7f"></a>STATE_LENGTH1&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a010c068eb5b149fac6ebc2d62605e877a03926065d783b5bc47b2992a03b38254"></a>STATE_LENGTH2&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a010c068eb5b149fac6ebc2d62605e877af750144bc35173846e7c61d49c970cd4"></a>STATE_ACQUIRE_DATA&#160;</td><td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a296495f396011382eca31a9b6d2d573d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ArNetPacketReceiverTcp::ArNetPacketReceiverTcp </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>

<p>References <a class="el" href="classArNetPacketReceiverTcp.html#a8c685fc3e8c8ea6feaa1dec662d8cc5f">myReadBuff</a>, and <a class="el" href="classArNetPacketReceiverTcp.html#aa01aaec8940d7485a0ee84c7d11bc52fa146ac460febcaa693e081e42f0608fe8">TOTAL_PACKET_LENGTH</a>.</p>

</div>
</div>
<a class="anchor" id="adb12f0d5d88ee25ae60c724d14f14baf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ArNetPacketReceiverTcp::~ArNetPacketReceiverTcp </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a6f361a2714580f35c50f7a0253df1040"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; <a class="el" href="classArNetPacket.html">ArNetPacket</a> * &gt; * ArNetPacketReceiverTcp::getProcessPacketCB </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the callback used when a packet is received. </p>
<dl class="section return"><dt>Returns</dt><dd>the callback used when a packet needs to be processed </dd></dl>

<p>References <a class="el" href="classArNetPacketReceiverTcp.html#a0ff3e8c79ea85602d8a02ef0c68f2179">myProcessPacketCB</a>.</p>

</div>
</div>
<a class="anchor" id="a6b4cc6fabc56576af75f7bfd727d1ae6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArNetPacketReceiverTcp::getQuiet </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets whether we're quiet about errors or not. </p>

<p>References <a class="el" href="classArNetPacketReceiverTcp.html#a32ae68ab3204e80c95b8cf8efb2d0152">myQuiet</a>.</p>

</div>
</div>
<a class="anchor" id="adf7127a13986063e7a4c130f3bf55421"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArSocket.html">ArSocket</a> * ArNetPacketReceiverTcp::getSocket </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the socket this receiver uses. </p>
<p>Gets the socket that the receiver is using, note that it does not have ownership of this socket and that whatever created it should. </p>

<p>References <a class="el" href="classArNetPacketReceiverTcp.html#af226fbbac54e12e07399b16fa36e756c">mySocket</a>.</p>

</div>
</div>
<a class="anchor" id="a890d4bdcd0e68e98b78c142bb752b74d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArNetPacketReceiverTcp::readData </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads in all the data available calling the processPacketCB. </p>
<p>This reads in the available data in the TCP port so that packets can be fetched with getPacket.</p>
<p>If an error occurs that is unrecoverable false will be returned which means that the socket owner who is calling this should close the socket and clean up.</p>
<dl class="section return"><dt>Returns</dt><dd>false on an error that should cause the socket to be closed, true with no errors </dd></dl>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArSocket.html#aaa6688b1776c58956b5d77e5b4933ebf">ArSocket::getIPString()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html#af83451accab114c9f86b507910b0305d">ArFunctor1&lt; P1 &gt;::invoke()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#a43a8b3789126c818f390f24bdbceccce">ArLog::log()</a>, <a class="el" href="classArNetPacketReceiverTcp.html#aeb5d25bdd33bf56e13e03eff265f4e84">myLoggingPrefix</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a1d94a72f83579b5ecd54b80230acbb31">myPacket</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a0ff3e8c79ea85602d8a02ef0c68f2179">myProcessPacketCB</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a32ae68ab3204e80c95b8cf8efb2d0152">myQuiet</a>, <a class="el" href="classArNetPacketReceiverTcp.html#af226fbbac54e12e07399b16fa36e756c">mySocket</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket()</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97eadcad0df1074a8869eb2284ce912b31c0">RET_BAD_PACKET</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea381e44166e13fdac40b28aa969a541a4">RET_CONN_CLOSED</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea10030506b4e96909b898a8d689c928b2">RET_CONN_ERROR</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea9e54270eeecfb3325d45e3b452aef2a0">RET_FAILED_READ</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea5e75e477ac45985b70b4b10cf8a9ad0f">RET_GOT_PACKET</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea475e41d0d8e5b063f9da0bf16e1981ac">RET_TIMED_OUT</a>, <a class="el" href="classArNetPacket.html#a952af70689710ce5ca92f8bfc23ce09b">ArNetPacket::setPacketSource()</a>, <a class="el" href="classArNetPacket.html#a699c1b74aac44c20113ba6412655de1dada3588583303835c7ded0f5767d8df6a">ArNetPacket::TCP</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a012daf6573594f91242f8dd7c02eb74b">ArLog::Terse</a>.</p>

<p>Referenced by <a class="el" href="classArClientBase.html#a156525a1b5ca6a26c8b72c48b3c06848">ArClientBase::loopOnce()</a>, and <a class="el" href="classArServerClient.html#a8f87f3b1826c19e71af860c992405937">ArServerClient::tcpCallback()</a>.</p>

</div>
</div>
<a class="anchor" id="a3b5299ac1052b95199fa2bb03416ad17"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97e">ArNetPacketReceiverTcp::Ret</a> ArNetPacketReceiverTcp::readPacket </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>msWait</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reads in a single packet, returns NULL if not one. </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArTime.html#aec93cf7e4c896f690c76e0249a8f44a1">ArTime::addMSec()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#a832d8c09ea2dc84a0df317ad2b24008d">ArBasePacket::dataToBuf()</a>, <a class="el" href="classArNetPacket.html#a967d1901ff4e9cc53e31383eaa3bb609">ArNetPacket::empty()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArSocket.html#ace2cdae7d0f720bf806c5c8fd80b6283">ArSocket::getBadRead()</a>, <a class="el" href="classArNetPacket.html#af058f6edff90eef3961f9b21bc88e2ab">ArNetPacket::getCommand()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#ae79313eb5ee1618c53e971b048e5d9b7">ArBasePacket::getFooterLength()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#ad7fae5c87596d533a8621a849867dafd">ArBasePacket::getHeaderLength()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#a43a8b3789126c818f390f24bdbceccce">ArLog::log()</a>, <a class="el" href="classArNetPacket.html#a11c6eb7a86ddc6ea04a49cc0ea307a64a233ff463989369cb076795dd20c44d22">ArNetPacket::MAX_LENGTH</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/group__easy.html#ga0b2cfe4da4202d614d3278e298ffe01d">ArTime::mSecTo()</a>, <a class="el" href="classArNetPacketReceiverTcp.html#aeb5d25bdd33bf56e13e03eff265f4e84">myLoggingPrefix</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a1d94a72f83579b5ecd54b80230acbb31">myPacket</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a32ae68ab3204e80c95b8cf8efb2d0152">myQuiet</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a8c685fc3e8c8ea6feaa1dec662d8cc5f">myReadBuff</a>, <a class="el" href="classArNetPacketReceiverTcp.html#aecf6c45f2a6a58a049509933ef4bf812">myReadCount</a>, <a class="el" href="classArNetPacketReceiverTcp.html#aa86f728499a275ea2239297eea54fe27">myReadLength</a>, <a class="el" href="classArNetPacketReceiverTcp.html#af226fbbac54e12e07399b16fa36e756c">mySocket</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a12e004623b489822264a70fd8d388d66">myState</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a2131fea3a0a13cfbfc6ead24968109de">mySync1</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a5f6c8bb129aa8931257edd76b1c9cbdc">mySync2</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a7040faf60eeb155eaa85d439b1066ca1">ArLog::Normal</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArSocket.html#a6cf324be0075d3469a70d01d4740e23c">ArSocket::read()</a>, <a class="el" href="classArNetPacket.html#acae24ddf871f42502daf8405d56d36c3">ArNetPacket::resetRead()</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97eadcad0df1074a8869eb2284ce912b31c0">RET_BAD_PACKET</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea381e44166e13fdac40b28aa969a541a4">RET_CONN_CLOSED</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea10030506b4e96909b898a8d689c928b2">RET_CONN_ERROR</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea9e54270eeecfb3325d45e3b452aef2a0">RET_FAILED_READ</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea5e75e477ac45985b70b4b10cf8a9ad0f">RET_GOT_PACKET</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a76116a42ec47264c061e8cfe3565e97ea475e41d0d8e5b063f9da0bf16e1981ac">RET_TIMED_OUT</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#a18bd814008fa96d4a1c0873190268198">ArBasePacket::setLength()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/group__easy.html#ga7c269e161c8e7cb56bde73dea501a619">ArTime::setToNow()</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877af750144bc35173846e7c61d49c970cd4">STATE_ACQUIRE_DATA</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877ad9a41316161b3e85f52f6974fd8a1d7f">STATE_LENGTH1</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877a03926065d783b5bc47b2992a03b38254">STATE_LENGTH2</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877a4e57959ccd21fb855a979515c4492f0d">STATE_SYNC1</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877aa7a3c6c802f9dd464fcc25fa6e4ba9f9">STATE_SYNC2</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a012daf6573594f91242f8dd7c02eb74b">ArLog::Terse</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#ab909290dd24db16046bdf792a20eb6da">ArBasePacket::uByteToBuf()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a6e80d09c67dad73e9ba736e91ec893be">ArLog::Verbose</a>, and <a class="el" href="classArNetPacket.html#a617b372f24ae6a21b70c9119878baac6">ArNetPacket::verifyCheckSum()</a>.</p>

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#a890d4bdcd0e68e98b78c142bb752b74d">readData()</a>.</p>

</div>
</div>
<a class="anchor" id="a6856fa666eee1a726f24cc29f1c4dd24"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ArNetPacketReceiverTcp::setLoggingPrefix </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>loggingPrefix</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the logging prefix. </p>

<p>References <a class="el" href="classArNetPacketReceiverTcp.html#aeb5d25bdd33bf56e13e03eff265f4e84">myLoggingPrefix</a>.</p>

<p>Referenced by <a class="el" href="classArServerClient.html#aeb58f2cfcc533a91bb89e4e6cff36975">ArServerClient::ArServerClient()</a>, and <a class="el" href="classArClientBase.html#a9d362e67fded3e8c36f120663c7f66cd">ArClientBase::setRobotName()</a>.</p>

</div>
</div>
<a class="anchor" id="aabb2ee9ad00fed3d6d2057634f2813a1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ArNetPacketReceiverTcp::setProcessPacketCB </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; <a class="el" href="classArNetPacket.html">ArNetPacket</a> * &gt; *&#160;</td>
          <td class="paramname"><em>functor</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the callback for use when a packet is received. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">functor</td><td>the callback to use when a packet needs to be processed </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="classArNetPacketReceiverTcp.html#a0ff3e8c79ea85602d8a02ef0c68f2179">myProcessPacketCB</a>.</p>

<p>Referenced by <a class="el" href="classArClientBase.html#ab2cf2d19c6da6490fe4c04554a7f31b2">ArClientBase::ArClientBase()</a>, <a class="el" href="classArServerClient.html#aeb58f2cfcc533a91bb89e4e6cff36975">ArServerClient::ArServerClient()</a>, and <a class="el" href="classArServerClient.html#a347ea0462ddb58e5b93cd01268cbfe44">ArServerClient::~ArServerClient()</a>.</p>

</div>
</div>
<a class="anchor" id="aa91c0cb40e86f21dd3af22567f1c7a07"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArNetPacketReceiverTcp::setQuiet </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>quiet</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets whether we're quiet about errors or not. </p>

<p>References <a class="el" href="classArNetPacketReceiverTcp.html#a32ae68ab3204e80c95b8cf8efb2d0152">myQuiet</a>.</p>

<p>Referenced by <a class="el" href="classArClientBase.html#a4c5b2436e7efbce5f7325e3cafd085d8">ArClientBase::internalNonBlockingConnectStart()</a>.</p>

</div>
</div>
<a class="anchor" id="a886818db9c10cdc4e43e946f7239b325"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ArNetPacketReceiverTcp::setSocket </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArSocket.html">ArSocket</a> *&#160;</td>
          <td class="paramname"><em>socket</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the socket this receiver uses. </p>
<p>Sets the socket that this receiver will use, note that it does not transfer ownership of the socket.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">socket</td><td>the socket to use for receiving data </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="classArNetPacketReceiverTcp.html#af226fbbac54e12e07399b16fa36e756c">mySocket</a>.</p>

<p>Referenced by <a class="el" href="classArClientBase.html#ab2cf2d19c6da6490fe4c04554a7f31b2">ArClientBase::ArClientBase()</a>, <a class="el" href="classArServerClient.html#aeb58f2cfcc533a91bb89e4e6cff36975">ArServerClient::ArServerClient()</a>, and <a class="el" href="classArServerClient.html#a347ea0462ddb58e5b93cd01268cbfe44">ArServerClient::~ArServerClient()</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="ab7a4e9e8a31b0657345b3c1fe36be897"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArTime.html">ArTime</a> ArNetPacketReceiverTcp::myLastPacket</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aeb5d25bdd33bf56e13e03eff265f4e84"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string ArNetPacketReceiverTcp::myLoggingPrefix</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#a890d4bdcd0e68e98b78c142bb752b74d">readData()</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket()</a>, and <a class="el" href="classArNetPacketReceiverTcp.html#a6856fa666eee1a726f24cc29f1c4dd24">setLoggingPrefix()</a>.</p>

</div>
</div>
<a class="anchor" id="a1d94a72f83579b5ecd54b80230acbb31"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArNetPacket.html">ArNetPacket</a> ArNetPacketReceiverTcp::myPacket</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#a890d4bdcd0e68e98b78c142bb752b74d">readData()</a>, and <a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket()</a>.</p>

</div>
</div>
<a class="anchor" id="a0ff3e8c79ea85602d8a02ef0c68f2179"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt;<a class="el" href="classArNetPacket.html">ArNetPacket</a> *&gt;* ArNetPacketReceiverTcp::myProcessPacketCB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#a6f361a2714580f35c50f7a0253df1040">getProcessPacketCB()</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a890d4bdcd0e68e98b78c142bb752b74d">readData()</a>, and <a class="el" href="classArNetPacketReceiverTcp.html#aabb2ee9ad00fed3d6d2057634f2813a1">setProcessPacketCB()</a>.</p>

</div>
</div>
<a class="anchor" id="a32ae68ab3204e80c95b8cf8efb2d0152"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArNetPacketReceiverTcp::myQuiet</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#a6b4cc6fabc56576af75f7bfd727d1ae6">getQuiet()</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a890d4bdcd0e68e98b78c142bb752b74d">readData()</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket()</a>, and <a class="el" href="classArNetPacketReceiverTcp.html#aa91c0cb40e86f21dd3af22567f1c7a07">setQuiet()</a>.</p>

</div>
</div>
<a class="anchor" id="a8c685fc3e8c8ea6feaa1dec662d8cc5f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">char ArNetPacketReceiverTcp::myReadBuff[<a class="el" href="classArNetPacketReceiverTcp.html#aa01aaec8940d7485a0ee84c7d11bc52fa146ac460febcaa693e081e42f0608fe8">TOTAL_PACKET_LENGTH</a>]</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#a296495f396011382eca31a9b6d2d573d">ArNetPacketReceiverTcp()</a>, and <a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket()</a>.</p>

</div>
</div>
<a class="anchor" id="a48597805fbc8af5c6be36e68c7b28f6c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArNetPacketReceiverTcp::myReadCommand</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aecf6c45f2a6a58a049509933ef4bf812"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArNetPacketReceiverTcp::myReadCount</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket()</a>.</p>

</div>
</div>
<a class="anchor" id="aa86f728499a275ea2239297eea54fe27"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArNetPacketReceiverTcp::myReadLength</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket()</a>.</p>

</div>
</div>
<a class="anchor" id="af226fbbac54e12e07399b16fa36e756c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArSocket.html">ArSocket</a>* ArNetPacketReceiverTcp::mySocket</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#adf7127a13986063e7a4c130f3bf55421">getSocket()</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a890d4bdcd0e68e98b78c142bb752b74d">readData()</a>, <a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket()</a>, and <a class="el" href="classArNetPacketReceiverTcp.html#a886818db9c10cdc4e43e946f7239b325">setSocket()</a>.</p>

</div>
</div>
<a class="anchor" id="a12e004623b489822264a70fd8d388d66"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArNetPacketReceiverTcp.html#a010c068eb5b149fac6ebc2d62605e877">State</a> ArNetPacketReceiverTcp::myState</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket()</a>.</p>

</div>
</div>
<a class="anchor" id="a2131fea3a0a13cfbfc6ead24968109de"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char ArNetPacketReceiverTcp::mySync1</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket()</a>.</p>

</div>
</div>
<a class="anchor" id="a5f6c8bb129aa8931257edd76b1c9cbdc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char ArNetPacketReceiverTcp::mySync2</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArNetPacketReceiverTcp.html#a3b5299ac1052b95199fa2bb03416ad17">readPacket()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="ArNetPacketReceiverTcp_8h.html">ArNetPacketReceiverTcp.h</a></li>
<li><a class="el" href="ArNetPacketReceiverTcp_8cpp.html">ArNetPacketReceiverTcp.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArNetPacketReceiverTcp.html">ArNetPacketReceiverTcp</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
